800
Is there a possibility to expand / collapse all groups (or group by group) at runtime with a method (equivalent to pressing the + or - button in the group header)

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	Columns.Item[TObject(1)].SortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	EndUpdate();
	BeginUpdate();
	EnsureVisibleColumn(TObject(0));
	with Items do
	begin
		ExpandItem[FirstVisibleItem] := False;
	end;
	EndUpdate();
end
799
Is there any public method to export the selected data

with AxGrid1 do
begin
	BeginUpdate();
	with Columns do
	begin
		Add('C1');
		(Add('C2') as EXGRIDLib.Column).FormatColumn := '1 index `A-Z`';
		(Add('C3') as EXGRIDLib.Column).FormatColumn := '100 index ``';
	end;
	with Items do
	begin
		AddItem('Item 1');
		SelectItem[AddItem('Item 2')] := True;
		AddItem('Item 3');
	end;
	EndUpdate();
	OutputDebugString( 'Export CSV Selected Items Only:' );
	OutputDebugString( Export('','sel') );
end
798
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

with AxGrid1 do
begin
	BeginUpdate();
	ScrollBars := EXGRIDLib.ScrollBarsEnum.exDisableBoth;
	set_ScrollPartVisible(EXGRIDLib.ScrollBarEnum.exVScroll,EXGRIDLib.ScrollPartEnum.exExtentThumbPart,True);
	set_ScrollPartVisible(EXGRIDLib.ScrollBarEnum.exHScroll,EXGRIDLib.ScrollPartEnum.exExtentThumbPart,True);
	set_ScrollPartVisible(EXGRIDLib.ScrollBarEnum($2),EXGRIDLib.ScrollPartEnum.exExtentThumbPart,True);
	ScrollWidth := 4;
	set_Background(EXGRIDLib.BackgroundPartEnum.exVSBack,$f0f0f0);
	set_Background(EXGRIDLib.BackgroundPartEnum.exVSThumb,$808080);
	ScrollHeight := 4;
	set_Background(EXGRIDLib.BackgroundPartEnum.exHSBack,get_Background(EXGRIDLib.BackgroundPartEnum.exVSBack));
	set_Background(EXGRIDLib.BackgroundPartEnum.exHSThumb,get_Background(EXGRIDLib.BackgroundPartEnum.exVSThumb));
	set_Background(EXGRIDLib.BackgroundPartEnum.exScrollSizeGrip,get_Background(EXGRIDLib.BackgroundPartEnum.exVSBack));
	EndUpdate();
end
797
I need to format a Column with Currency Format, but we use we are using Dhirams (AED)for the Amount. How to do this

with AxGrid1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		Add('Name');
		with (Add('Currency') as EXGRIDLib.Column) do
		begin
			SortType := EXGRIDLib.SortTypeEnum.SortNumeric;
			AllowSizing := False;
			Width := 64;
			FormatColumn := 'currency(value)';
		end;
		with (Add('Format') as EXGRIDLib.Column) do
		begin
			SortType := EXGRIDLib.SortTypeEnum.SortNumeric;
			AllowSizing := False;
			Width := 64;
			FormatColumn := '`AED ` + (value format ``)';
		end;
	end;
	with Items do
	begin
		h := AddItem('Value 1');
		CellValue[TObject(h),TObject(1)] := TObject(10);
		CellValue[TObject(h),TObject(2)] := TObject(10);
		h := AddItem('Value 2');
		CellValue[TObject(h),TObject(1)] := TObject(20);
		CellValue[TObject(h),TObject(2)] := TObject(20);
	end;
	EndUpdate();
end
796
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

with AxGrid1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		with (Add('Car') as EXGRIDLib.Column) do
		begin
			DisplayFilterButton := True;
			FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
			Filter := 'MAZDA';
		end;
		with (Add('Equipment') as EXGRIDLib.Column) do
		begin
			DisplayFilterButton := True;
			DisplayFilterPattern := False;
			CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
			FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
			Filter := 'AIR BAG';
		end;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Mazda')),TObject(1)] := 'Air Bag';
		CellValue[TObject(AddItem('Toyota')),TObject(1)] := 'Air Bag,Air condition';
		CellValue[TObject(AddItem('Ford')),TObject(1)] := 'Air condition';
		CellValue[TObject(AddItem('Nissan')),TObject(1)] := 'Air Bag,ABS,ESP';
		CellValue[TObject(AddItem('Mazda')),TObject(1)] := 'Air Bag, ABS,ESP';
		CellValue[TObject(AddItem('Mazda')),TObject(1)] := 'ABS,ESP';
	end;
	ApplyFilter();
	EndUpdate();
end
795
How can I have a case-sensitive filter

with AxGrid1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		with (Add('Car') as EXGRIDLib.Column) do
		begin
			DisplayFilterButton := True;
			FilterType := Integer(EXGRIDLib.FilterTypeEnum.exFilterDoCaseSensitive) Or Integer(EXGRIDLib.FilterTypeEnum.exFilter);
			Filter := 'Mazda';
		end;
		with (Add('Equipment') as EXGRIDLib.Column) do
		begin
			DisplayFilterButton := True;
			DisplayFilterPattern := False;
			CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
			FilterType := Integer(EXGRIDLib.FilterTypeEnum.exFilterDoCaseSensitive) Or Integer(EXGRIDLib.FilterTypeEnum.exPattern);
			Filter := 'Air Bag';
		end;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Mazda')),TObject(1)] := 'Air Bag';
		CellValue[TObject(AddItem('Toyota')),TObject(1)] := 'Air Bag,Air condition';
		CellValue[TObject(AddItem('Ford')),TObject(1)] := 'Air condition';
		CellValue[TObject(AddItem('Nissan')),TObject(1)] := 'Air Bag,ABS,ESP';
		CellValue[TObject(AddItem('Mazda')),TObject(1)] := 'Air Bag, ABS,ESP';
		CellValue[TObject(AddItem('Mazda')),TObject(1)] := 'ABS,ESP';
	end;
	ApplyFilter();
	EndUpdate();
end
794
How can I exclude an item from aggregate/total computation

with AxGrid1 do
begin
	(Columns.Add('Default') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0];
		CellValue[TObject(h),TObject(0)] := 'sum(all,rec,%0)';
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '`Sum: ` + (value format ``) ';
		AddItem(TObject(10));
		h := AddItem(TObject(20));
		SortableItem[h] := False;
		FormatCell[TObject(h),TObject(0)] := 'value + ` <fgcolor=808080> this item is excluded from aggregate computations</fgcolor>`';
		AddItem(TObject(30));
	end;
end
793
Is is possible to change the default group header to display sum rather than count

with AxGrid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib.HierarchyLineEnum.exNoLine;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Item[TObject(6)].AllowGroupBy := False;
	with Columns.Item[TObject(1)] do
	begin
		GroupByFormatCell := '''<caption> (sum: <b>'' + value + ''</b>, of Freight)''';
		GroupByTotalField := 'sum(current,rec,%6)';
		SortOrder := True;
	end;
	EndUpdate();
end
792
How do I get the caption of the group during the AddGroupItem event

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			OutputDebugString( 'Caption:' );
			OutputDebugString( CellCaption[TObject(e.item),TObject(GroupItem[e.item])] );
			OutputDebugString( 'Value:' );
			OutputDebugString( CellValue[TObject(e.item),TObject(GroupItem[e.item])] );
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib.HierarchyLineEnum.exNoLine;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	with Columns.Item[TObject(1)] do
	begin
		GroupByFormatCell := '''<b><caption></b> ('' + value + '') group''';
		SortOrder := True;
	end;
	EndUpdate();
end
791
Is it possible, to add more aggregate functions to grouping header

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			FormatCell[TObject(e.item),TObject(GroupItem[e.item])] := 'value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`';
			CellValue[TObject(e.item),'Min'] := 'min(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Min'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			CellValue[TObject(e.item),'Max'] := 'max(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Max'] := EXGRIDLib.ValueFormatEnum.exTotalField;
			CellValue[TObject(e.item),'Sum'] := 'sum(current,all,dbl(%6))';
			CellValueFormat[TObject(e.item),'Sum'] := EXGRIDLib.ValueFormatEnum.exTotalField;
		end;
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib.HierarchyLineEnum.exNoLine;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Item[TObject(1)].SortOrder := True;
	with Columns do
	begin
		(Add('Min') as EXGRIDLib.Column).Visible := False;
		(Add('Max') as EXGRIDLib.Column).Visible := False;
		(Add('Sum') as EXGRIDLib.Column).Visible := False;
	end;
	EndUpdate();
end
790
Is it possible to display more aggregate functions to a single cell (method 2)

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	SortOnClick := EXGRIDLib.SortOnClickEnum.exNoSort;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside;
	Indent := 13;
	HeaderVisible := False;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with Columns do
	begin
		Add('Items');
		(Add('Quantity') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
		(Add('Sum') as EXGRIDLib.Column).Visible := False;
		(Add('Min') as EXGRIDLib.Column).Visible := False;
		(Add('Max') as EXGRIDLib.Column).Visible := False;
	end;
	with Items do
	begin
		h := AddItem('Items');
		CellMerge[TObject(h),TObject(0)] := TObject(1);
		FormatCell[TObject(h),TObject(0)] := '`Items, <b>sum(` + %2 + `), min(` + %3 + `), max(` + %4 + `)</b>`';
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellValue[TObject(h),TObject(2)] := 'sum(current,dir,dbl(%1))';
		CellValueFormat[TObject(h),TObject(2)] := EXGRIDLib.ValueFormatEnum.exTotalField;
		CellValue[TObject(h),TObject(3)] := 'min(current,dir,dbl(%1))';
		CellValueFormat[TObject(h),TObject(3)] := EXGRIDLib.ValueFormatEnum.exTotalField;
		CellValue[TObject(h),TObject(4)] := 'max(current,dir,dbl(%1))';
		CellValueFormat[TObject(h),TObject(4)] := EXGRIDLib.ValueFormatEnum.exTotalField;
		CellValue[TObject(InsertItem(h,Nil,'Item 1')),TObject(1)] := TObject(10);
		CellValue[TObject(InsertItem(h,Nil,'Item 2')),TObject(1)] := TObject(20);
		CellValue[TObject(InsertItem(h,Nil,'Item 3')),TObject(1)] := TObject(30);
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
789
How can I use the current in the aggregate/total field

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	SortOnClick := EXGRIDLib.SortOnClickEnum.exNoSort;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside;
	Indent := 13;
	HeaderVisible := False;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with Columns do
	begin
		Add('Items');
		(Add('Quantity') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
	end;
	with Items do
	begin
		h := AddItem('Items');
		CellValue[TObject(h),TObject(1)] := 'sum(current,dir,dbl(%1))';
		CellValueFormat[TObject(h),TObject(1)] := EXGRIDLib.ValueFormatEnum.exTotalField;
		FormatCell[TObject(h),TObject(1)] := '`Total: `+ value';
		CellValue[TObject(InsertItem(h,Nil,'Item 1')),TObject(1)] := TObject(10);
		CellValue[TObject(InsertItem(h,Nil,'Item 2')),TObject(1)] := TObject(20);
		CellValue[TObject(InsertItem(h,Nil,'Item 3')),TObject(1)] := TObject(30);
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
788
How can I prevent a specified item to be not included in the aggregate/total function

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	SortOnClick := EXGRIDLib.SortOnClickEnum.exNoSort;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside;
	HasLines := EXGRIDLib.HierarchyLineEnum.exThinLine;
	HeaderVisible := False;
	(Columns.Add('Numbers') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
	with Items do
	begin
		h := AddItem('Numbers');
		CellEditorVisible[TObject(h),TObject(0)] := EXGRIDLib.EditorVisibleEnum.exEditorHidden;
		ItemBold[InsertItem(h,Nil,TObject(10))] := True;
		ItemBold[InsertItem(h,Nil,TObject(20))] := True;
		ItemBold[InsertItem(h,Nil,TObject(30))] := True;
		h1 := InsertItem(h,Nil,'not included');
		CellEditorVisible[TObject(h1),TObject(0)] := EXGRIDLib.EditorVisibleEnum.exEditorHidden;
		CellValueFormat[TObject(h1),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellHAlignment[TObject(h1),TObject(0)] := EXGRIDLib.AlignmentEnum.RightAlignment;
		SortableItem[h1] := False;
		h1 := InsertItem(0,Nil,'sum(all,rec,dbl(%0))');
		ItemBold[h1] := True;
		SelectableItem[h1] := False;
		CellValueFormat[TObject(h1),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h1),TObject(0)] := '`Sum: ` + value';
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
787
Is is possible to specify which items/cells/fields to be included by the aggregate/total function I am using

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		Items.SortableItem[e.item] := False;
	end
end;

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			SortableItem[e.item] := False;
		end;
		Refresh();
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	TreeColumnIndex := -1;
	FullRowSelect := EXGRIDLib.CellSelectEnum.exColumnSel;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	SortOnClick := EXGRIDLib.SortOnClickEnum.exNoSort;
	(Columns.Add('Check Numbers') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
	with Items do
	begin
		CellHasCheckBox[TObject(AddItem(TObject(10))),TObject(0)] := True;
		h := AddItem(TObject(20));
		CellHasCheckBox[TObject(h),TObject(0)] := True;
		CellState[TObject(h),TObject(0)] := 1;
		CellHasCheckBox[TObject(AddItem(TObject(30))),TObject(0)] := True;
		h := AddItem('sum(all,rec,dbl(%0))');
		SelectableItem[h] := False;
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '`sum on checked items : ` + value';
	end;
	EndUpdate();
end
786
Can I display multiple total/aggregate functions such as sum, min or max, into a single cell (method 1)

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	TreeColumnIndex := -1;
	FullRowSelect := EXGRIDLib.CellSelectEnum.exColumnSel;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	(Columns.Add('Numbers') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
	with Items do
	begin
		AddItem(TObject(10));
		AddItem(TObject(20));
		AddItem(TObject(30));
		h := AddItem('sum(all,rec,dbl(%0))');
		SelectableItem[h] := False;
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '`sum: ` + value';
		h := SplitCell[TObject(h),TObject(0)];
		CellValue[TObject(0),TObject(h)] := 'min(all,rec,dbl(%0))';
		CellValueFormat[TObject(0),TObject(h)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(0),TObject(h)] := '`min: ` + value';
		h := SplitCell[TObject(0),TObject(h)];
		CellValue[TObject(0),TObject(h)] := 'max(all,rec,dbl(%0))';
		CellValueFormat[TObject(0),TObject(h)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(0),TObject(h)] := '`max: ` + value';
	end;
	EndUpdate();
end
785
How can I use the index of the item in total/aggregate functions, rather than root or parent

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	TreeColumnIndex := -1;
	FullRowSelect := EXGRIDLib.CellSelectEnum.exColumnSel;
	(Columns.Add('Numbers') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
	with (Columns.Add('Idx') as EXGRIDLib.Column) do
	begin
		FormatColumn := '0 index ``';
		Width := 24;
		AllowSizing := False;
		Enabled := False;
	end;
	with Items do
	begin
		h := AddItem('3 Numbers');
		ItemHeight[h] := 0;
		SelectableItem[h] := False;
		InsertItem(h,Nil,TObject(10));
		InsertItem(h,Nil,TObject(20));
		InsertItem(h,Nil,TObject(30));
		ExpandItem[h] := True;
		h := AddItem('sum(0,dir,dbl(%0))');
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		SelectableItem[h] := False;
		FormatCell[TObject(h),TObject(0)] := '`sum of first three numbers is ` + value';
		h := AddItem('3 Numbers');
		ItemHeight[h] := 0;
		SelectableItem[h] := False;
		InsertItem(h,Nil,TObject(15));
		InsertItem(h,Nil,TObject(35));
		ExpandItem[h] := True;
		h := AddItem('count(5,dir,dbl(%0))');
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		SelectableItem[h] := False;
		FormatCell[TObject(h),TObject(0)] := '`count of next two numbers is ` + value';
	end;
	EndUpdate();
end
784
How can I have a better view of what current, parent, all, dir or rec means in total/aggregate fields

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesAtRoot;
	(Columns.Add('Numbers') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
	with Items do
	begin
		h := AddItem('');
		CellValue[TObject(h),TObject(0)] := 'sum(current,dir,dbl(%0))';
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '''sum of <fgcolor=FF0000><b>Direct</b> children: ''+value + `</fgcolor> using <a>sum(current,dir,dbl(%0))`';
		ItemForeColor[InsertItem(h,Nil,TObject(10))] := $ff;
		ItemForeColor[InsertItem(h,Nil,TObject(20))] := $ff;
		ItemForeColor[InsertItem(h,Nil,TObject(30))] := $ff;
		ExpandItem[h] := True;
	end;
	with Items do
	begin
		h := AddItem('');
		CellValue[TObject(h),TObject(0)] := 'sum(current,rec,dbl(%0))';
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '''sum of <fgcolor=00FF00><b>Leaf</b> chidlren: ''+value +`</fgcolor> using <a>sum(current,rec,dbl(%0))`';
		ItemForeColor[InsertItem(InsertItem(InsertItem(InsertItem(h,Nil,TObject(100)),Nil,TObject(10)),Nil,TObject(10)),Nil,TObject(1))] := $ff00;
		ItemForeColor[InsertItem(InsertItem(h,Nil,TObject(200)),Nil,TObject(2))] := $ff00;
		ItemForeColor[InsertItem(InsertItem(h,Nil,TObject(300)),Nil,TObject(3))] := $ff00;
		h1 := InsertItem(h,Nil,'sum(parent,direct,%0)');
		CellValueFormat[TObject(h1),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h1),TObject(0)] := '''sum of <b>Parent Direct</b> children: ''+value +`</fgcolor> using <a>sum(parent,direct,%0)`';
		h1 := InsertItem(h,Nil,'sum(parent,rec,%0)');
		CellValueFormat[TObject(h1),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h1),TObject(0)] := '''sum of <fgcolor=00FF00><b>Parent Leaf</b> children: ''+value +`</fgcolor> using <a>sum(parent,rec,%0)`';
		ExpandItem[0] := True;
	end;
	with Items do
	begin
		h := AddItem('');
		CellValue[TObject(h),TObject(0)] := 'sum(all,rec,dbl(%0))';
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '''sum of <fgcolor=FF00FF><b>All (leaf children)</b>: ''+value  +`</fgcolor> using <a>sum(all,rec,dbl(%0))`';
	end;
	with Items do
	begin
		h := AddItem('');
		CellValue[TObject(h),TObject(0)] := 'sum(all,all,dbl(%0))';
		CellValueFormat[TObject(h),TObject(0)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
		FormatCell[TObject(h),TObject(0)] := '''sum of <fgcolor=FF00FF><b>All (children)</b>: ''+value  +`</fgcolor> using <a>sum(all,all,dbl(%0))`';
	end;
	EndUpdate();
end
783
Do you have any Fit-To-Page options when printing the control

with AxGrid1 do
begin
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print')) as EXPRINTLib.Print) do
	begin
		Options := 'FitToPage = On';
		PrintExt := (AxGrid1.GetOcx() as EXGRIDLib.Grid).DefaultDispatch;
		Preview();
	end;
end
782
How do I hide the selection

with AxGrid1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	SelForeColor := ForeColor;
	SelBackColor := BackColor;
	ShowFocusRect := False;
	with Columns do
	begin
		with (Add('Format') as EXGRIDLib.Column) do
		begin
			FormatColumn := 'type(value) in (0,1) ? ''null'' : ( dbl(value)<0 ? ''<fgcolor=FF0000>''+ (value format ''2|.|3|,|1'' ) : (dbl(value)>0 ? ''<fgcolor=000' + 
	'0FF>+''+(value format ''2|.|3|,'' ): ''0.00'') )';
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		end;
	end;
	with Items do
	begin
		AddItem(TObject(10));
		AddItem(TObject(-8));
	end;
	EndUpdate();
end
781
How do I access the cells, or how do I get the values in the columns

with AxGrid1 do
begin
	with Columns do
	begin
		Add('C1');
		Add('C2');
		Add('C3');
	end;
	with Items do
	begin
		h := AddItem('Item 1');
		CellValue[TObject(h),TObject(1)] := 'SubItem 1.1';
		CellValue[TObject(h),TObject(2)] := 'SubItem 1.2';
		OutputDebugString( CellValue[TObject(h),TObject(2)] );
	end;
end
780
I am using the FormatColumn/FormatCell to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings

// SelectionChanged event - Fired after a new item has been selected.
procedure TWinForm1.AxGrid1_SelectionChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			ClearItemBackColor(0);
			ItemBackColor[SelectedItem[0]] := $ffff80;
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	SelForeColor := ForeColor;
	SelBackColor := BackColor;
	ShowFocusRect := False;
	with Columns do
	begin
		with (Add('Format') as EXGRIDLib.Column) do
		begin
			FormatColumn := 'type(value) in (0,1) ? ''null'' : ( dbl(value)<0 ? ''<fgcolor=FF0000>''+ (value format ''2|.|3|,|1'' ) : (dbl(value)>0 ? ''<fgcolor=000' + 
	'0FF>+''+(value format ''2|.|3|,'' ): ''0.00'') )';
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		end;
	end;
	with Items do
	begin
		AddItem(TObject(10));
		AddItem(TObject(-8));
	end;
	EndUpdate();
end
779
How can I get the number of columns being shown in the control's SortBar part

with AxGrid1 do
begin
	BeginUpdate();
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	Columns.Item[TObject(1)].SortOrder := True;
	Columns.Item[TObject(2)].SortOrder := True;
	OutputDebugString( Columns.SortBarColumnsCount );
	EndUpdate();
end
778
How can I add a header and footer for grouping items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			h := InsertItem(e.item,Nil,'');
			SelectableItem[h] := False;
			CellValue[TObject(h),TObject(6)] := 'min(parent,rec,dbl(%6))';
			CellValueFormat[TObject(h),TObject(6)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
			FormatCell[TObject(h),TObject(6)] := '`<font ;7><b>Min</b>: ` + value';
			ItemPosition[h] := 0;
			h := InsertItem(e.item,Nil,'');
			SelectableItem[h] := False;
			CellValue[TObject(h),TObject(6)] := 'max(parent,rec,dbl(%6))';
			CellValueFormat[TObject(h),TObject(6)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
			FormatCell[TObject(h),TObject(6)] := '`<font ;7><b>Max</b>: ` + value';
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib.HierarchyLineEnum.exNoLine;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Item[TObject(1)].SortOrder := True;
	EndUpdate();
end
777
How can I add a footer for grouping items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			h := InsertItem(e.item,Nil,'');
			SelectableItem[h] := False;
			CellValue[TObject(h),TObject(6)] := 'sum(parent,rec,dbl(%6))';
			CellValueFormat[TObject(h),TObject(6)] := Integer(EXGRIDLib.ValueFormatEnum.exTotalField) Or Integer(EXGRIDLib.ValueFormatEnum.exHTML);
			FormatCell[TObject(h),TObject(6)] := '`<font ;7><b>Sum</b>: ` + value';
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	HasLines := EXGRIDLib.HierarchyLineEnum.exNoLine;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Item[TObject(1)].SortOrder := True;
	EndUpdate();
end
776
How can I handle the event for the inside controls

// ItemOleEvent event - Fired when an ActiveX control hosted by an item has fired an event.
procedure TWinForm1.AxGrid1_ItemOleEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ItemOleEventEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( e.ev );
	end
end;

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	ScrollBySingleLine := True;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		ExpandItem[h] := True;
		h := InsertControlItem(h,'Exontrol.Grid',Nil);
		ItemHeight[h] := 256;
		with (ItemObject[h] as EXGRIDLib.Grid) do
		begin
			LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
			ScrollBySingleLine := True;
			Columns.Add('C1');
			Columns.Add('C2');
			with Items do
			begin
				CellValue[TObject(AddItem(TObject(1))),TObject(1)] := TObject(2);
			end;
			h := Items.AddItem(TObject(3));
			Items.CellValue[TObject(h),TObject(1)] := TObject(4);
			with Items do
			begin
				ExpandItem[h] := True;
				h := InsertControlItem(h,'Exontrol.Grid',Nil);
				with (ItemObject[h] as EXGRIDLib.Grid) do
				begin
					LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
					Columns.Add('Inside-Inside');
					with Items do
					begin
						h := AddItem('item');
						InsertItem(h,Nil,'child 1');
						InsertItem(h,Nil,'child 2');
						InsertItem(h,Nil,'child 3');
					end;
				end;
			end;
		end;
	end;
end
775
How can I specify the position of the item manually (Method 2)

with AxGrid1 do
begin
	Columns.Add('Default');
	with Items do
	begin
		AddItem('Child 3');
		AddItem('Child 2');
		AddItem('Child 1');
		ItemPosition[ItemByIndex[0]] := 2;
		ItemPosition[ItemByIndex[1]] := 1;
		ItemPosition[ItemByIndex[2]] := 0;
	end;
end
774
How can I specify the position of the item manually (Method 1)

with AxGrid1 do
begin
	Columns.Add('Default');
	with Items do
	begin
		h3 := AddItem('Child 3');
		h2 := AddItem('Child 2');
		h1 := AddItem('Child 1');
		ItemPosition[h3] := 2;
		ItemPosition[h2] := 1;
		ItemPosition[h1] := 0;
	end;
end
773
Is it possible to open second inside grid in inside-grid

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	ScrollBySingleLine := True;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		ExpandItem[h] := True;
		h := InsertControlItem(h,'Exontrol.Grid',Nil);
		ItemHeight[h] := 256;
		with (ItemObject[h] as EXGRIDLib.Grid) do
		begin
			LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
			ScrollBySingleLine := True;
			Columns.Add('C1');
			Columns.Add('C2');
			with Items do
			begin
				CellValue[TObject(AddItem(TObject(1))),TObject(1)] := TObject(2);
			end;
			h := Items.AddItem(TObject(3));
			Items.CellValue[TObject(h),TObject(1)] := TObject(4);
			with Items do
			begin
				ExpandItem[h] := True;
				h := InsertControlItem(h,'Exontrol.Grid',Nil);
				with (ItemObject[h] as EXGRIDLib.Grid) do
				begin
					Columns.Add('Inside-Inside');
					Items.AddItem('item');
				end;
			end;
		end;
	end;
end
772
Computed field concatating strings values to calculated values. Is there something we can change this

with AxGrid1 do
begin
	with Columns do
	begin
		Add('A');
		Add('B');
		(Add('Sum') as EXGRIDLib.Column).ComputedField := 'dbl(%0) + dbl(%1)';
		(Add('Concaternation') as EXGRIDLib.Column).ComputedField := 'str(%0) + str(%1)';
	end;
	with Items do
	begin
		CellValue[TObject(AddItem(TObject(1))),TObject(1)] := TObject(2);
		CellValue[TObject(AddItem(TObject(21))),TObject(1)] := TObject(22);
	end;
end
771
Is it possible the Items.FormatCell or Column.FormatColumn to use values from other columns

with AxGrid1 do
begin
	with Columns do
	begin
		(Add('A') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.SpinType;
		(Add('B') as EXGRIDLib.Column).FormatColumn := 'currency(%0)';
		(Add('C') as EXGRIDLib.Column).FormatColumn := '%1 format ''''';
	end;
	with Items do
	begin
		AddItem(TObject(1));
		AddItem(TObject(2));
		AddItem(TObject(3));
	end;
end
770
Is it possible to do un-grouping the items

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TWinForm1.AxGrid1_ClickEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		Ungroup();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarHeight := 24;
	HeaderHeight := 24;
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	ReadOnly := EXGRIDLib.ReadOnlyEnum.exReadOnly;
	with Columns.Item[TObject(1)] do
	begin
		Alignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
		Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(15790320);
		SortOrder := True;
	end;
	EndUpdate();
end
769
How can I change the visual aspect of the links in the sort bar

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarHeight := 24;
	HeaderHeight := 24;
	BackColorSortBar := Color.FromArgb(240,240,240);
	BackColorSortBarCaption := BackColor;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAEGg4BdsIQAAYAQGKIYBkAKBQAGaAoDDgNw0QwAAxjMK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpAA' + 
	'WL4tCyMc7QHKAWhrEAbJjgQYJUh+TQAAZCIJRXRQAL/K6rKwnSCQIgkUBpGKdBynEYoYxAfyESCJWyIahWAwoQjUMB1HLQAAxC5kKbkIxyBABFBdVjVeBYG78Bz+ABjE' + 
	'ovbAMEwPBqAMwmIAZDheA4FR4AGhTXKcbxrFaXZSzKckPRoADSZq1Sg5LjDJI2ABqU6ABqNLZtJKsZS4apABrWeZ3Q7QMLdFTwA4PH6EZhxXAYbTVeaPZjQIBAgI');
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	with Columns.Item[TObject(1)] do
	begin
		Alignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
		Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(15790320);
		SortOrder := True;
	end;
	with Columns.Item[TObject(5)] do
	begin
		Alignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
		Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(16119285);
		SortOrder := True;
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exSortBarLinkColor,$1000000);
	EndUpdate();
end
768
Is it possible to display no +/- button for grouped items

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	with Columns.Item[TObject(1)] do
	begin
		Alignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
		Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(15790320);
	end;
	EndUpdate();
end
767
How can I remove the extra information that grouped items display

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	Columns.Item[TObject(6)].AllowGroupBy := False;
	with Columns.Item[TObject(1)] do
	begin
		GroupByTotalField := '';
		GroupByFormatCell := '';
	end;
	EndUpdate();
end
766
How can I change the label, caption or the formula of the grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		Items.ItemDividerLineAlignment[e.item] := EXGRIDLib.DividerAlignmentEnum.DividerBoth;
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	ScrollBySingleLine := True;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	Columns.Item[TObject(6)].AllowGroupBy := False;
	with Columns.Item[TObject(1)] do
	begin
		GroupByTotalField := 'sum(current,rec,%6)';
		GroupByFormatCell := '''<font ;11>'' + <caption> + ''</font> <fgcolor=808080>( Freight: '' + currency(value) + '')''';
	end;
	DefaultItemHeight := 28;
	EndUpdate();
end
765
How can I change the aspect of grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			ItemDividerLine[e.item] := EXGRIDLib.DividerLineEnum.EmptyLine;
			l := GroupItem[e.item];
			CellSingleLine[TObject(e.item),TObject(l)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
			CellBold[TObject(e.item),TObject(l)] := True;
			CellBackColor[TObject(e.item),TObject(l)] := $1000000;
		end;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	ScrollBySingleLine := True;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exNoLinesAtRoot;
	TreeColumnIndex := -1;
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAEGg4BKoCg6AADACAxRDAMgBQKAAzQFAYcBuGiGAAGMZhWgmFgAQhFcZQSKUOQTDKMIziaQIRDEMw5SSNIxyAK0QBkAqNQCkKKwIgmNYDSBMYABBI' + 
	'MBwiGQaRJnegYRDUMJCQjRVITVLMNoXDKZIyqEAHfpWVJWSLHcIhDBJUjcOYyTiOQrzCK8dB0G6bIrGEZpYRAPwEYDIIjbQhqFYDChCNLwHScEAxC4kLhnKK6Vb9d6HY' + 
	'hiOJYXhmDrfR7IMhyLI8QafFqXZhmOZZXizPY9T7QNB0LQ8eZbJqnahqOpaOx2W5dV7YNh2LTWGzXNq3bhuOzLbrme59X7gOB3RZeE4XRrHchxKq8XxnG6dZ7oOTUXof' + 
	'FOK5WmudQTh2LpfHOO5em+doSh4LwfhOS5mnGIw9D6LxfjOW5unSIQ+D8L4flOa5yD2fg/D+L5fnOe54ByigGAKAJgEgBBrgGYIICYCoCmCSAcGOA5hAgRgSgSYQBGoF' + 
	'oFmGCBmBqBphGESgegeYgIgYIoHkSKIWCaCZigiJgqgqYhog4LoLmGSJGDKBZhEiVg2gMY4ImYCIBGOSJ1n6D5kAeZZ2hCZBHj4RoRl6J4eEqEpeAkNhOHaXYJEYUh0G' + 
	'USRVkwchlgkZZChaZZGnWOoXmYBpOGKGJamaLhmhmWhJiYahnlmSY2G4ZZZEmRhyGMZxJlWCBhFCFgWHaHpYkmSh+GSJp6AWG4amgRoOGeIZahmEoKGyJgKDWOIXGkBw' + 
	'GFmJJcHkWoWHQJQqGWVoTmmRx+EuJ5eFkIoiHuJBKhWdIQGqB52D2KpgDiaougMIxqyODJrEgbgvi2YgYjKOoumKSpij4FIrFsBg0iyLBKj6RoOmqSwmimMpkCqGpOii' + 
	'bQJCaII0mmWxWFCJotgoXpahWaRLHaEY3mWag6mKIpuEmFoIjmaBbiYbIgi6RhaH+O5Onmcpyh2VYAAEASAg');
	DrawGridLines := EXGRIDLib.GridLinesEnum.exHLines;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	with Columns.Item[TObject(1)] do
	begin
		GroupByFormatCell := '''EmployeeID: '' + <caption> + ''<br><font ;7><fgcolor=808080>Count: '' + value';
	end;
	EndUpdate();
end
764
How can I remove or change the line it shows for grouped items

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		Items.ItemDividerLine[e.item] := EXGRIDLib.DividerLineEnum.EmptyLine;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	EndUpdate();
end
763
Is it possible to determine whether an item is regular or a group by item
// MouseMove event - Occurs when the user moves the mouse.
procedure TWinForm1.AxGrid1_MouseMoveEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseMoveEvent);
begin
	with AxGrid1 do
	begin
		h := get_ItemFromPoint(-1,-1,c,hit);
		OutputDebugString( Items.GroupItem[h] );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	EndUpdate();
end
762
How can I collapse all items when the user performs a grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		Items.ExpandItem[e.item] := False;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	EndUpdate();
end
761
Is it possible to select columns that user can drop to the sort bar, when using the Group By feature

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := '<fgcolor=FF0000>Try to drag the EmployeeID column here.';
	AllowGroupBy := True;
	Columns.Item[TObject(1)].AllowGroupBy := False;
	EndUpdate();
end
760
How can I enable the Group By support, with no sort bar

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SingleSort := False;
	AllowGroupBy := True;
	Columns.Item[TObject(1)].SortOrder := True;
	EndUpdate();
end
759
Does your control support Group-By feature

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	EndUpdate();
end
758
How can I restrict a field to number only (Method 3, Float)

with AxGrid1 do
begin
	with (Columns.Add('Numbers') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.EditType;
		Numeric := EXGRIDLib.NumericEnum.exFloat;
	end;
	Items.AddItem(TObject(12));
end
757
How can I restrict a field to number only (Method 2, Integer only)

with AxGrid1 do
begin
	with (Columns.Add('Numbers') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.EditType;
		Numeric := EXGRIDLib.NumericEnum.exInteger;
	end;
	Items.AddItem(TObject(12));
end
756
How can I restrict a field to number only (Method 1)

with AxGrid1 do
begin
	with (Columns.Add('Numbers') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.MaskType;
		Mask := '###.###';
	end;
	Items.AddItem(TObject(12));
end
755
Is it possible to include only leaf items ( items with no childs ) in the drop down list

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc) Or Integer(EXGRIDLib.FilterListEnum.exLeafItems);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
754
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Item') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		Filter := 'Child 1';
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
	end;
	with (Columns.Add('Date') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exNoItems);
		Filter := '12/28/2010';
		FilterType := EXGRIDLib.FilterTypeEnum.exDate;
	end;
	FilterCriteria := '%0 or %1';
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarOr,'<font ;18><fgcolor=FF0000>or</fgcolor></font>');
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,'<font ;18><fgcolor=FF0000>and</fgcolor></font>');
	with Items do
	begin
		h := AddItem('Root 1');
		CellValue[TObject(InsertItem(h,Nil,'Child 1')),TObject(1)] := '12/27/2010';
		CellValue[TObject(InsertItem(h,Nil,'Child 2')),TObject(1)] := '12/28/2010';
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		CellValue[TObject(InsertItem(h,Nil,'Child 1')),TObject(1)] := '12/29/2010';
		CellValue[TObject(InsertItem(h,Nil,'Child 2')),TObject(1)] := '12/30/2010';
	end;
	ApplyFilter();
	EndUpdate();
end
753
Is it possible exclude the dates being selected in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Date') as EXGRIDLib.Column) do
	begin
		SortType := EXGRIDLib.SortTypeEnum.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exNoItems);
	end;
	with Items do
	begin
		AddItem('12/27/2010');
		AddItem('12/28/2010');
		AddItem('12/29/2010');
		AddItem('12/30/2010');
		AddItem('12/31/2010');
	end;
	EndUpdate();
end
752
How can I display a calendar control inside the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Date') as EXGRIDLib.Column) do
	begin
		SortType := EXGRIDLib.SortTypeEnum.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		DisplayFilterDate := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exNoItems);
	end;
	with Items do
	begin
		AddItem('12/27/2010');
		AddItem('12/28/2010');
		AddItem('12/29/2010');
		AddItem('12/30/2010');
		AddItem('12/31/2010');
	end;
	EndUpdate();
end
751
Is it possible to include the dates as checkb-boxes in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Dates') as EXGRIDLib.Column) do
	begin
		SortType := EXGRIDLib.SortTypeEnum.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		DisplayFilterDate := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
		Filter := 'to 12/27/2010';
		FilterType := EXGRIDLib.FilterTypeEnum.exDate;
	end;
	with Items do
	begin
		AddItem('12/27/2010');
		AddItem('12/28/2010');
		AddItem('12/29/2010');
		AddItem('12/30/2010');
		AddItem('12/31/2010');
	end;
	ApplyFilter();
	EndUpdate();
end
750
How can I filter items for dates before a specified date

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Dates') as EXGRIDLib.Column) do
	begin
		SortType := EXGRIDLib.SortTypeEnum.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		DisplayFilterDate := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exNoItems);
		Filter := 'to 12/27/2010';
		FilterType := EXGRIDLib.FilterTypeEnum.exDate;
	end;
	with Items do
	begin
		AddItem('12/27/2010');
		AddItem('12/28/2010');
		AddItem('12/29/2010');
		AddItem('12/30/2010');
		AddItem('12/31/2010');
	end;
	ApplyFilter();
	EndUpdate();
end
749
Is it possible to filter dates

with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Dates') as EXGRIDLib.Column) do
	begin
		SortType := EXGRIDLib.SortTypeEnum.SortDate;
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		DisplayFilterDate := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exNoItems);
	end;
	with Items do
	begin
		AddItem('12/27/2010');
		AddItem('12/28/2010');
		AddItem('12/29/2010');
		AddItem('12/30/2010');
		AddItem('12/31/2010');
	end;
	EndUpdate();
end
748
Is it possible to change the Exclude field name to something different, in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarExclude,'Leaving out');
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
	end;
	EndUpdate();
end
747
How can I display the Exclude field in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
	end;
	EndUpdate();
end
746
Is it possible to show and ensure the focused item from the control, in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		SelectItem[InsertItem(h,Nil,'Child 2')] := True;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
745
Is it possible to show only blanks items with no listed items from the control

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowBlanks) Or Integer(EXGRIDLib.FilterListEnum.exNoItems);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
744
How can I include the blanks items in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowBlanks) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
743
How can I select multiple items in the drop down filter window, using check-boxes

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := EXGRIDLib.FilterListEnum.exShowCheckBox;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
742
Is it possible to allow a single item being selected in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterList := EXGRIDLib.FilterListEnum.exSingleSel;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
741
How can I display no (All) item in the drop down filter window

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAll,'');
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		FilterList := EXGRIDLib.FilterListEnum.exNoItems;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
740
Is it possible to display no items in the drop down filter window, so only the pattern is visible

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		FilterList := EXGRIDLib.FilterListEnum.exNoItems;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
739
How can I show the child items with no identation

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside;
	Indent := 12;
	HasLines := EXGRIDLib.HierarchyLineEnum.exThinLine;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
	end;
end
738
Is there other ways of showing the hierarchy lines (exGroupLinesAtRoot)

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesAtRoot;
	Indent := 12;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
		ExpandItem[h] := True;
	end;
end
737
Is there other ways of showing the hierarchy lines (exGroupLinesOutside)

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside;
	Indent := 12;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
	end;
end
736
Is there other ways of showing the hierarchy lines (exGroupLinesInsideLeaf)

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesInsideLeaf;
	Indent := 12;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
		ExpandItem[h] := True;
	end;
end
735
Is there other ways of showing the hierarchy lines (exGroupLinesInside)

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesInside;
	Indent := 12;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		InsertItem(h,Nil,'Child 3');
		ExpandItem[h] := True;
	end;
end
734
Is there other ways of showing the hierarchy lines (exGroupLines)

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLines;
	Indent := 12;
	Columns.Add('Default');
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(InsertItem(h,Nil,'Child 2'),Nil,'SubChild 2');
		InsertItem(h,Nil,'Child 3');
		ExpandItem[h] := True;
	end;
end
733
Is it possible to display a column with buttons when using exCRD format

with AxGrid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	DefaultItemHeight := 36;
	FullRowSelect := EXGRIDLib.CellSelectEnum.exColumnSel;
	with Columns do
	begin
		with (Add('Column1') as EXGRIDLib.Column) do
		begin
			Visible := False;
			Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
		with (Add('Column2') as EXGRIDLib.Column) do
		begin
			Visible := False;
			Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
		with (Add('Column3') as EXGRIDLib.Column) do
		begin
			Alignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
			HeaderAlignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
			Visible := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasButton] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellButtonAutoWidth] := TObject(True);
		end;
		with (Add('FormatLevel') as EXGRIDLib.Column) do
		begin
			FormatLevel := '(0/1),2:64';
			Def[EXGRIDLib.DefColumnEnum.exCellFormatLevel] := TObject(FormatLevel);
		end;
	end;
	with Items do
	begin
		h := AddItem('Cell 1.1');
		CellValue[TObject(h),TObject(1)] := 'Cell 1.2';
		CellValue[TObject(h),TObject(2)] := 'Cell 1.3';
		h := AddItem('Cell 2.1');
		CellValue[TObject(h),TObject(1)] := 'Cell 2.2';
		CellValue[TObject(h),TObject(2)] := 'Cell 2.3';
	end;
	EndUpdate();
end
732
How can I change the check-boxes appearance

with AxGrid1 do
begin
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
	end;
	with VisualAppearance do
	begin
		Add(1,'XP:Button 3 12');
		Add(2,'XP:Button 3 11');
		Add(3,'XP:Button 3 10');
	end;
	set_CheckImage(EXGRIDLib.CheckStateEnum.Unchecked,16777216);
	set_CheckImage(EXGRIDLib.CheckStateEnum.Checked,33554432);
	set_CheckImage(EXGRIDLib.CheckStateEnum.PartialChecked,50331648);
end
731
Is it possible to disable the cell's editor context menu
with AxGrid1 do
begin
	with (Columns.Add('Edit') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.EditType;
		Option[EXGRIDLib.EditorOptionEnum.exEditAllowContextMenu] := TObject(False);
	end;
	with Items do
	begin
		AddItem(TObject(10));
		AddItem(TObject(20));
	end;
end
730
How can I find a value in a drop down editor

with AxGrid1 do
begin
	with (Columns.Add('DropDownList') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.DropDownListType;
		AddItem(1,'DDList 1',Nil);
		AddItem(2,'DDList 2',Nil);
		AddItem(3,'DDList 3',Nil);
	end;
	with (Columns.Add('DropDown') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.DropDownType;
		AddItem(1,'DDType 1',Nil);
		AddItem(2,'DDType 2',Nil);
		AddItem(3,'DDType 3',Nil);
	end;
	with Items do
	begin
		CellValue[TObject(.AddItem(TObject(1))),TObject(1)] := AxGrid1.Columns.Item[TObject(1)].Editor.FindItem[TObject(1)];
		CellValue[TObject(.AddItem(TObject(2))),TObject(1)] := AxGrid1.Columns.Item[TObject(1)].Editor.FindItem[TObject(2)];
	end;
end
729
What is the difference between DropDownType and DropDownListType

with AxGrid1 do
begin
	with (Columns.Add('DropDownList') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.DropDownListType;
		AddItem(1,'First item',Nil);
		AddItem(2,'Second item',Nil);
		AddItem(3,'Third item',Nil);
	end;
	with (Columns.Add('DropDown') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.DropDownType;
		AddItem(1,'First item',Nil);
		AddItem(2,'Second item',Nil);
		AddItem(3,'Third item',Nil);
	end;
	with Items do
	begin
		CellValue[TObject(AddItem(TObject(1))),TObject(1)] := 'Any';
		CellValue[TObject(AddItem(TObject(2))),TObject(1)] := 'Any';
	end;
end
728
How can I add or change the padding (spaces) for captions in the control's header

with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Padding-Left') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exHeaderPaddingLeft] := TObject(18);
	with (Columns.Add('Padding-Right') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exHeaderPaddingRight] := TObject(18);
		HeaderAlignment := EXGRIDLib.AlignmentEnum.RightAlignment;
	end;
	EndUpdate();
end
727
Do you have any plans to add cell spacing and cell padding to the cells

with AxGrid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	with (Columns.Add('Padding-Left') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(18);
	end;
	(Columns.Add('No-Padding') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
	(Columns.Add('Empty') as EXGRIDLib.Column).Position := 0;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A.1')),TObject(1)] := 'Item A.2';
		CellValue[TObject(AddItem('Item B.1')),TObject(1)] := 'Item B.2';
		CellValue[TObject(AddItem('Item C.1')),TObject(1)] := 'Item C.2';
	end;
	EndUpdate();
end
726
Is it possible to change the height for all items at once

with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	Columns.Add('Items');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[0] := True;
	end;
	EndUpdate();
	DefaultItemHeight := 12;
	Items.ItemHeight[0] := 12;
end
725
Can I display somehow the filter just on the top of the list, with an editor associated to each column

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'Locked:' );
		OutputDebugString( Items.IsItemLocked[e.item] );
		with Columns.Item[TObject(e.colIndex)] do
		begin
			Filter := e.newValue;
			FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
		end;
		ApplyFilter();
	end
end;

// MouseUp event - Occurs when the user releases a mouse button.
procedure TWinForm1.AxGrid1_MouseUpEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseUpEvent);
begin
	with AxGrid1 do
	begin
		Edit(Items.LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0]);
	end
end;

with AxGrid1 do
begin
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	ContinueColumnScroll := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 2;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0];
		CellEditor[TObject(h),TObject(0)].EditType := EXGRIDLib.EditTypeEnum.EditType;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,1];
		ItemHeight[h] := 4;
		ItemDivider[h] := 0;
		SelectableItem[h] := False;
	end;
end
724
Is it possible to display information about the firing events
// Event event - Notifies the application once the control fires an event.
procedure TWinForm1.AxGrid1_Event(sender: System.Object; e: AxEXGRIDLib._IGridEvents_EventEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( get_EventParam(-2) );
	end
end;


723
How can I change the layout of my columns when using the exCRD

with AxGrid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	DefaultItemHeight := 36;
	with Columns do
	begin
		with (Add('Column1') as EXGRIDLib.Column) do
		begin
			Visible := False;
			Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
		with (Add('Column2') as EXGRIDLib.Column) do
		begin
			Visible := False;
			Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
		(Add('Column3') as EXGRIDLib.Column).Visible := False;
		with (Add('FormatLevel') as EXGRIDLib.Column) do
		begin
			FormatLevel := '(0/1),2';
			Def[EXGRIDLib.DefColumnEnum.exCellFormatLevel] := TObject(FormatLevel);
		end;
	end;
	with Items do
	begin
		h := AddItem('Cell 1.1');
		CellValue[TObject(h),TObject(1)] := 'Cell 1.2';
		CellValue[TObject(h),TObject(2)] := 'Cell 1.3';
		h := AddItem('Cell 2.1');
		CellValue[TObject(h),TObject(1)] := 'Cell 2.2';
		CellValue[TObject(h),TObject(2)] := 'Cell 2.3';
	end;
	EndUpdate();
end
722
Is it possible to scroll the control's content by clicking and moving the mouse up or down

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	AutoDrag := EXGRIDLib.AutoDragEnum.exAutoDragScroll;
	EndUpdate();
end
721
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
with AxGrid1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	set_HTMLPicture('p1','c:\exontrol\images\card.png');
	set_HTMLPicture('p2','c:\exontrol\images\sun.png');
	AutoDrag := EXGRIDLib.AutoDragEnum.exAutoDragCopySnapShot;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exNoLinesAtRoot;
	HasLines := EXGRIDLib.HierarchyLineEnum.exThinLine;
	ShowFocusRect := False;
	DefaultItemHeight := 26;
	Columns.Add('Task');
	with Items do
	begin
		h := AddItem('<img>p1:32</img>Group 1');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		ItemDivider[h] := 0;
		ItemBold[h] := True;
		h1 := InsertItem(h,Nil,'Task 1');
		h2 := InsertItem(h,Nil,'Task 2');
		h3 := InsertItem(h,Nil,'Task 3');
		h := AddItem('<img>p2:32</img>Group 2');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		ItemBold[h] := True;
		ItemDivider[h] := 0;
		h1 := InsertItem(h,Nil,'Task');
		ExpandItem[0] := True;
	end;
	EndUpdate();
end
720
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image

with AxGrid1 do
begin
	BeginUpdate();
	set_HTMLPicture('p1','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' + 
	'kgignAiBXAhAwBBCAg==');
	set_HTMLPicture('p2','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' + 
	'LZnCEAAgZAABJBFBOBECuBCBgCCEBA==');
	var_HTMLPicture := get_HTMLPicture('aka1');
	HeaderHeight := 24;
	DefaultItemHeight := 48;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	GridLineColor := Color.FromArgb(240,240,240);
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	Columns.Item[TObject(0)].Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
	Columns.Item[TObject(0)].FormatColumn := 'value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`';
	Columns.Item[TObject(0)].Width := 112;
	Columns.Item[TObject(1)].Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(1);
	Columns.Item[TObject(2)].LevelKey := '1';
	Columns.Item[TObject(3)].LevelKey := '1';
	Columns.Item[TObject(4)].LevelKey := '1';
	AutoDrag := EXGRIDLib.AutoDragEnum.exAutoDragCopyImage;
	SingleSel := False;
	with Items do
	begin
		h := ItemByIndex[1];
		SelectItem[h] := True;
		h := ItemByIndex[2];
		SelectItem[h] := True;
		h := ItemByIndex[3];
		SelectItem[h] := True;
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		CellValue[TObject(h),TObject(1)] := '<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, ...';
		CellSingleLine[TObject(h),TObject(1)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		CellValueFormat[TObject(h),TObject(1)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellHAlignment[TObject(h),TObject(1)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
		ItemDivider[h] := 1;
		ItemDividerLineAlignment[h] := EXGRIDLib.DividerAlignmentEnum.DividerTop;
	end;
	EndUpdate();
end
719
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	ContinueColumnScroll := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	Columns.Item[TObject(2)].LevelKey := '1';
	Columns.Item[TObject(3)].LevelKey := '1';
	Columns.Item[TObject(4)].LevelKey := '1';
	AutoDrag := EXGRIDLib.AutoDragEnum.exAutoDragCopyText;
	SingleSel := False;
	with Items do
	begin
		h := ItemByIndex[1];
		SelectItem[h] := True;
		h := ItemByIndex[3];
		SelectItem[h] := True;
		h := ItemByIndex[4];
		SelectItem[h] := True;
		h := ItemByIndex[5];
		SelectItem[h] := True;
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		CellValue[TObject(h),TObject(0)] := '<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, Excel, ...';
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
		ItemDivider[h] := 0;
		ItemDividerLineAlignment[h] := EXGRIDLib.DividerAlignmentEnum.DividerTop;
	end;
	EndUpdate();
end
718
Is it possible to change the indentation during the drag and drop

with AxGrid1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	AutoDrag := EXGRIDLib.AutoDragEnum.exAutoDragPositionAny;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exNoLinesAtRoot;
	HasLines := EXGRIDLib.HierarchyLineEnum.exSolidLine;
	HasButtons := EXGRIDLib.ExpandButtonEnum.exWPlus;
	ShowFocusRect := False;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	Columns.Add('Task');
	with Items do
	begin
		h := AddItem('Group 1');
		ItemBold[h] := True;
		ItemDivider[h] := 0;
		h1 := InsertItem(h,Nil,'Task 1');
		h2 := InsertItem(h1,Nil,'Task 2');
		h2 := InsertItem(h1,Nil,'Task 3');
		h3 := InsertItem(h,Nil,'Task 3');
		ExpandItem[h] := True;
		ExpandItem[h1] := True;
		h := AddItem('Group 2');
		ItemBold[h] := True;
		ItemDivider[h] := 0;
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		CellValue[TObject(h),TObject(0)] := 'Click a row, and move by dragging <b>up, down</b> to change the row''s parent or <b>left,right</b> to increase or decrease the in' + 
	'dentation.';
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
	end;
	EndUpdate();
end
717
Is it possible to allow moving an item to another, but keeping its indentation

with AxGrid1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	AutoDrag := EXGRIDLib.AutoDragEnum.exAutoDragPositionKeepIndent;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exNoLinesAtRoot;
	HasLines := EXGRIDLib.HierarchyLineEnum.exThinLine;
	ShowFocusRect := False;
	Columns.Add('Task');
	with Items do
	begin
		h := AddItem('Group 1');
		ItemDivider[h] := 0;
		ItemBold[h] := True;
		h1 := InsertItem(h,Nil,'Task 1');
		h2 := InsertItem(h,Nil,'Task 2');
		h3 := InsertItem(h,Nil,'Task 3');
		ExpandItem[h] := True;
		h := AddItem('Group 2');
		ItemBold[h] := True;
		ItemDivider[h] := 0;
	end;
	EndUpdate();
end
716
How can I change the row's position to another, by drag and drop. Is it possible

with AxGrid1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	AutoDrag := EXGRIDLib.AutoDragEnum.exAutoDragPosition;
	Columns.Add('Task');
	with Items do
	begin
		h1 := AddItem('Task 1');
		h2 := AddItem('Task 2');
		h3 := AddItem('Task 3');
	end;
	EndUpdate();
end
715
Is it possible background color displayed when the mouse passes over an item

with AxGrid1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	HotBackColor := Color.FromArgb(0,0,128);
	HotForeColor := Color.FromArgb(255,255,255);
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	EndUpdate();
end
714
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

with AxGrid1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Items do
	begin
		AddItem('Task 1');
		AddItem('Task 2');
	end;
	EndUpdate();
	Template := 'Dim p;p = CreateObject(`Exontrol.Print`);p.PrintExt = Me;p.AutoRelease = False;p.Preview();';
end
713
My development environment does not have any Object,GetOcx,DefaultDispatch,GetControlUnknown,nativeObject, ... property, is there any alternative I can pass the component to PrintExt so I can get printed

with AxGrid1 do
begin
	BeginUpdate();
	Columns.Add('Default');
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Task 2');
	end;
	EndUpdate();
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print')) as EXPRINTLib.Print) do
	begin
		PrintExt := (AxGrid1.ExecuteTemplate('me') as EXGRIDLib.Grid).DefaultDispatch;
		Preview();
	end;
end
712
How can I apply the same ConditionalFormat on more than 1(one) column (multiple columns and not on item)

with AxGrid1 do
begin
	BeginUpdate();
	with ConditionalFormats.Add('1','K1') do
	begin
		BackColor := $ff;
		ApplyTo := EXGRIDLib.FormatApplyToEnum($1);
	end;
	with ConditionalFormats.Add('1','K2') do
	begin
		BackColor := $ff;
		ApplyTo := EXGRIDLib.FormatApplyToEnum($2);
	end;
	MarkSearchColumn := False;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	with Columns do
	begin
		Add('Column 1');
		Add('Column 2');
		Add('Column 3');
	end;
	with Items do
	begin
		AddItem(Nil);
		AddItem(Nil);
		AddItem(Nil);
	end;
	EndUpdate();
end
711
Is it possible to add new records and see them in the control's view using the DataSource

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TWinForm1.AxGrid1_ButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ButtonClickEvent);
begin
	with AxGrid1 do
	begin
		with (DataSource as ADODB.Recordset) do
		begin
			AddNew('Task','New-Task');
			Update(Nil,Nil);
		end;
	end
end;

// Error event - Fired when an internal error occurs.
procedure TWinForm1.AxGrid1_Error(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ErrorEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( e.description );
	end
end;

with AxGrid1 do
begin
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs.Fields do
	begin
		Append('Task',8,Nil,Nil,Nil);
		Append('Start',7,Nil,Nil,Nil);
		Append('End',7,Nil,Nil,Nil);
	end;
	rs.Open(Nil,Nil,Nil,Nil,Nil);
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	DetectAddNew := True;
	DetectDelete := True;
	DataSource := (rs as ADODB.Recordset);
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0];
		ItemDivider[h] := 0;
		ItemHeight[h] := 22;
		CellValue[TObject(h),TObject(0)] := 'AddNew';
		CellHasButton[TObject(h),TObject(0)] := True;
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
	end;
end
710
How can I initiate an OLE Drag and Drop operation in /COM version

// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TWinForm1.AxGrid1_OLEStartDrag(sender: System.Object; e: AxEXGRIDLib._IGridEvents_OLEStartDragEvent);
begin
	// Data.SetData("your data to drag")
	with AxGrid1 do
	begin
		e.allowedEffects := 2;
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Columns.Add('Default');
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Item 2');
		AddItem('Item 3');
		AddItem('Item 4');
		AddItem('Item 5');
	end;
	OLEDropMode := EXGRIDLib.exOLEDropModeEnum.exOLEDropManual;
	EndUpdate();
end
709
How can I find the order of the events
// AfterExpandItem event - Fired after an item is expanded (collapsed).
procedure TWinForm1.AxGrid1_AfterExpandItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AfterExpandItemEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'AfterExpandItem' );
		OutputDebugString( e.item );
	end
end;

// AnchorClick event - Occurs when an anchor element is clicked.
procedure TWinForm1.AxGrid1_AnchorClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AnchorClickEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'AnchorClick' );
		OutputDebugString( e.anchorID );
		OutputDebugString( e.options );
	end
end;

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TWinForm1.AxGrid1_BeforeExpandItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_BeforeExpandItemEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'BeforeExpandItem' );
		OutputDebugString( e.item );
	end
end;

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TWinForm1.AxGrid1_ButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ButtonClickEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'ButtonClick' );
		OutputDebugString( e.item );
		OutputDebugString( e.colIndex );
		OutputDebugString( e.key );
	end
end;

// CellImageClick event - Fired after the user clicks on the image's cell area.
procedure TWinForm1.AxGrid1_CellImageClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellImageClickEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'CellImageClick' );
		OutputDebugString( e.item );
		OutputDebugString( e.colIndex );
	end
end;

// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'CellStateChanged' );
		OutputDebugString( e.item );
		OutputDebugString( e.colIndex );
	end
end;

// Change event - Occurs when the user changes the cell's content.
procedure TWinForm1.AxGrid1_Change(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ChangeEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'Change' );
		OutputDebugString( e.item );
		OutputDebugString( e.colIndex );
		OutputDebugString( e.newValue );
	end
end;

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TWinForm1.AxGrid1_ClickEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'Click' );
	end
end;

// ColumnClick event - Fired after the user clicks on column's header.
procedure TWinForm1.AxGrid1_ColumnClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ColumnClickEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'ColumnClick' );
	end
end;

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
procedure TWinForm1.AxGrid1_DblClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_DblClickEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'DblClick' );
		OutputDebugString( e.shift );
		OutputDebugString( e.x );
		OutputDebugString( e.y );
		Edit(Nil);
	end
end;

// Edit event - Occurs just before editing the focused cell.
procedure TWinForm1.AxGrid1_EditEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_EditEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'Edit' );
		OutputDebugString( e.item );
		OutputDebugString( e.colIndex );
	end
end;

// EditClose event - Occurs when the edit operation ends.
procedure TWinForm1.AxGrid1_EditCloseEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'EditClose' );
	end
end;

// EditOpen event - Occurs when the edit operation starts.
procedure TWinForm1.AxGrid1_EditOpen(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'EditOpen' );
	end
end;

// FilterChange event - Occurs when filter was changed.
procedure TWinForm1.AxGrid1_FilterChange(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'FilterChange' );
	end
end;

// FilterChanging event - Notifies your application that the filter is about to change.
procedure TWinForm1.AxGrid1_FilterChanging(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'FilterChanging' );
	end
end;

// FocusChanged event - Occurs when a new cell is focused.
procedure TWinForm1.AxGrid1_FocusChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'FocusChanged' );
	end
end;

// KeyDown event - Occurs when the user presses a key while an object has the focus.
procedure TWinForm1.AxGrid1_KeyDownEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_KeyDownEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'KeyDown' );
		OutputDebugString( e.keyCode );
		OutputDebugString( e.shift );
	end
end;

// KeyPress event - Occurs when the user presses and releases an ANSI key.
procedure TWinForm1.AxGrid1_KeyPressEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_KeyPressEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'KeyPress' );
		OutputDebugString( e.keyAscii );
	end
end;

// KeyUp event - Occurs when the user releases a key while an object has the focus.
procedure TWinForm1.AxGrid1_KeyUpEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_KeyUpEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'KeyUp' );
		OutputDebugString( e.keyCode );
		OutputDebugString( e.shift );
	end
end;

// LayoutChanged event - Occurs when column's position or column's size is changed.
procedure TWinForm1.AxGrid1_LayoutChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'LayoutChanged' );
	end
end;

// MouseDown event - Occurs when the user presses a mouse button.
procedure TWinForm1.AxGrid1_MouseDownEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseDownEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'MouseDown' );
		OutputDebugString( e.button );
		OutputDebugString( e.shift );
		OutputDebugString( e.x );
		OutputDebugString( e.y );
	end
end;

// MouseMove event - Occurs when the user moves the mouse.
procedure TWinForm1.AxGrid1_MouseMoveEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseMoveEvent);
begin
end;

// MouseUp event - Occurs when the user releases a mouse button.
procedure TWinForm1.AxGrid1_MouseUpEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseUpEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'MouseUp' );
		OutputDebugString( e.button );
		OutputDebugString( e.shift );
		OutputDebugString( e.x );
		OutputDebugString( e.y );
	end
end;

// OffsetChanged event - Occurs when the scroll position has been changed.
procedure TWinForm1.AxGrid1_OffsetChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_OffsetChangedEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'OffsetChanged' );
		OutputDebugString( e.horizontal );
		OutputDebugString( e.newVal );
	end
end;

// OversizeChanged event - Occurs when the right range of the scroll has been changed.
procedure TWinForm1.AxGrid1_OversizeChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_OversizeChangedEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'OversizeChanged' );
		OutputDebugString( e.horizontal );
		OutputDebugString( e.newVal );
	end
end;

// RClick event - Fired when right mouse button is clicked
procedure TWinForm1.AxGrid1_RClick(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'RClick' );
	end
end;

// ScrollButtonClick event - Occurs when the user clicks a button in the scrollbar.
procedure TWinForm1.AxGrid1_ScrollButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ScrollButtonClickEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'ScrollButtonClick' );
		OutputDebugString( e.scrollBar );
		OutputDebugString( e.scrollPart );
	end
end;

// SelectionChanged event - Fired after a new item has been selected.
procedure TWinForm1.AxGrid1_SelectionChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;

// Sort event - Fired when the control sorts a column.
procedure TWinForm1.AxGrid1_Sort(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'Sort' );
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIEAAGAEGCAAhb/hz/EIAh8Tf5CJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1BAmBhOCwMGwuDw2ExWJxmIx2HyGLv+TlykUCgABmGYzzObzuczWcKujzOa0ug02hz' + 
	'+r1Wtz2qoCA2QAYG1yk02YA3NMy2Yh8Sh202zx4gA4jxADM5XG4vHACy6ESdjM6XUZiZTMS5bwZSm1c83+yQHCYHk81Q8O7qW18u/9NG3vAf/y83u4PQWQA0ZVADq/z6' + 
	'um6rkuw7TqH+5bYJu+z5vE8z2N02cGweoDfwfCrbQfBqkNzBb6QfDLxp6+LlOs5cSOTEzlm7FYACFFwADvGIAGvGjzOu7MbwHHECQSmUOvS8cGwk20gQc2ycQs4MLvLD' + 
	'8MNtDSfyS+cmyZJzywa96axzDsTw6/x1AAL8xRbF8Vm65jkH/AL8QFNTqR6lsfuDIb2uDKTzTo88FTtIk+PK3SNRDKiew5JVDSnK08NnOUGRClkt0PFEDUjMwAENS4AM' + 
	'2zj4udNznujT1PTgjdGQg8c71RPtESvCL1JrO8lozQUj1nP6d1TKtc0U8dS1jCaNRzGhrxnGthWJYdjUrYwc2ZMMx2NB8czZNk4VLPMstzXD6Q6mltVjPNAT0m1CvnDt' + 
	'BxBXlI3PRKNzZDtjQ6cd5TQ/TSU0/r/udC0A1Ez1SUja8/QhWVavrSLfpxWNzXZR2CygmVtXXVl03Lg+BV+lV3UjeDgzEL4AXkcb6Pje5LZNDzhuLfrOX/RtT0TQbc5l' + 
	'ENSvBi2K5xlFdUHhN1ZhJ9F59WybOU7NjWTFkvxhGT9zIIQAWYHIABFqmnABSsT0HUaNYlI1dZmjNuUDRybzvIVWyDoOc54n8Oyxm9Ta9cSUaLbbg44+b4xiO9nY/pt7' + 
	'3u38Tuc52tpdruYxDVyUbBV+gYpu2c7PyGMKTt21cjnW6OvzO8PppUvP/Ljlt/wt/Vvn+v8V1eCdbgaa7fnMi8vyD0TnzGEJXyp/wJ3js98iXe+F3/hwGM3jeQZjTeUz' + 
	'nmOT5bTKJyqYcbm2c5bzXpqvsWw4FUkCO473wgB8cD9/znzO14n1+D4/efcTP4fl5+WKvxbbptmqV+B/ni/68R4514AvxeTAR50B3oPNei/iBhFgfErgeR4kBIiSAAJK' + 
	'SiC7PT5wMKIQ4fwfyHDzg2PwD4/B/jgg2PgA48AfjgB+RkeAARwAPGAA8jI4AADgAOMAAZGTyw6YbDkA7ZDaAHgxDyCxGgBw8EBBmJcS4LjAATDweBGoqjgAGP4jQ/Ac' + 
	'jwAHBsiQex8gPH+MF7pDxxkB');
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	GridLineStyle := EXGRIDLib.GridLinesStyleEnum.exGridLinesHDash;
	AutoEdit := False;
	ExpandOnDblClick := False;
	with Columns do
	begin
		with (Add('Column') as EXGRIDLib.Column) do
		begin
			DisplayFilterButton := True;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
		with (Add('Button') as EXGRIDLib.Column) do
		begin
			AllowSizing := False;
			Width := 18;
			Def[EXGRIDLib.DefColumnEnum.exCellHasButton] := TObject(True);
		end;
	end;
	with Items do
	begin
		h := AddItem('parent');
		CellImage[TObject(h),TObject(0)] := 1;
		InsertItem(h,'','child');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
708
Is it possible to select a column instead sorting it

// ColumnClick event - Fired after the user clicks on column's header.
procedure TWinForm1.AxGrid1_ColumnClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ColumnClickEvent);
begin
	// Column.Selected = True
	with AxGrid1 do
	begin
		BeginUpdate();
		Columns.Item[TObject(0)].Selected := False;
		Columns.Item[TObject(1)].Selected := False;
		Items.SelectAll();
		EndUpdate();
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	ShowFocusRect := False;
	SingleSel := False;
	FullRowSelect := EXGRIDLib.CellSelectEnum.exRectSel;
	SortOnClick := EXGRIDLib.SortOnClickEnum.exNoSort;
	with Columns do
	begin
		Add('Column1');
		Add('Column2');
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('One')),TObject(1)] := 'Three';
		CellValue[TObject(AddItem('Two')),TObject(1)] := 'Four';
		SelectAll();
	end;
	EndUpdate();
end
707
Is it possible to display empty strings for 0 values

with AxGrid1 do
begin
	with (Columns.Add('Currency') as EXGRIDLib.Column) do
	begin
		FormatColumn := 'dbl(value) ? currency(dbl(value)) : ``';
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.EditType;
			Numeric := EXGRIDLib.NumericEnum.exFloat;
		end;
	end;
	with Items do
	begin
		AddItem(TObject(1.23));
		AddItem(TObject(2.34));
		AddItem(TObject(0));
		AddItem(TObject(10000.99));
	end;
end
706
Is it possible to display empty strings for 0 values

with AxGrid1 do
begin
	Columns.Add('Number');
	(Columns.Add('Currency') as EXGRIDLib.Column).ComputedField := '%0 ? currency(%0) : ``';
	with Items do
	begin
		AddItem(TObject(1.23));
		AddItem(TObject(2.34));
		AddItem(TObject(0));
		AddItem(TObject(10000.99));
	end;
end
705
How can I get the list of items as they are displayed

with AxGrid1 do
begin
	BeginUpdate();
	BackColorAlternate := Color.FromArgb(240,240,240);
	Columns.Add('Names');
	with Items do
	begin
		AddItem('Mantel');
		AddItem('Mechanik');
		AddItem('Motor');
		AddItem('Murks');
		AddItem('Märchen');
		AddItem('Möhren');
		AddItem('Mühle');
	end;
	Columns.Item[TObject(0)].SortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	EndUpdate();
	OutputDebugString( GetItems(TObject(1)) );
end
704
Is it possible to add new rows, as I type like in Excel

// EditClose event - Occurs when the edit operation ends.
procedure TWinForm1.AxGrid1_EditCloseEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		Items.AddItem('');
	end
end;

with AxGrid1 do
begin
	BeginUpdate();
	AutoEdit := True;
	(Columns.Add('Default') as EXGRIDLib.Column).Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
	FullRowSelect := EXGRIDLib.CellSelectEnum.exColumnSel;
	Items.AddItem('');
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	ScrollBars := EXGRIDLib.ScrollBarsEnum.exDisableBoth;
	EndUpdate();
end
703
Is posible to reduce the size of the picture to be shown in the column's caption

with AxGrid1 do
begin
	BeginUpdate();
	set_HTMLPicture('pic1','c:\exontrol\images\zipdisk.gif');
	HeaderHeight := 48;
	(Columns.Add('DefaultSize') as EXGRIDLib.Column).HTMLCaption := 'Default-Size <img>pic1</img> Picture';
	(Columns.Add('CustomSize') as EXGRIDLib.Column).HTMLCaption := 'Custom-Size <img>pic1:16</img> Picture';
	EndUpdate();
end
702
How can I change the color, font, bold etc for the items/cells in the same column or for the entire column

with AxGrid1 do
begin
	BeginUpdate();
	with ConditionalFormats.Add('1',Nil) do
	begin
		Bold := True;
		ForeColor := $ff;
		ApplyTo := EXGRIDLib.FormatApplyToEnum($1);
	end;
	Columns.Add('C1');
	with (Columns.Add('C2') as EXGRIDLib.Column) do
	begin
		HeaderBold := True;
		HTMLCaption := '<fgcolor=FF0000>C2';
	end;
	with Items do
	begin
		CellValue[TObject(AddItem(TObject(10))),TObject(1)] := TObject(11);
		CellValue[TObject(AddItem(TObject(12))),TObject(1)] := TObject(13);
	end;
	EndUpdate();
end
701
How can I filter the check-boxes (method 2)

with AxGrid1 do
begin
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		CustomFilter := 'checked||-1|||unchecked||0';
	end;
	with Items do
	begin
		AddItem(TObject(True));
		AddItem(TObject(True));
		AddItem(TObject(False));
		AddItem(TObject(True));
		AddItem(TObject(False));
		AddItem(TObject(True));
		AddItem(TObject(False));
	end;
end